שיחה עם מגייסת, ריאיון ראשון עם CTO, תרגיל בזום עם CTO. בתרגיל קיבלתי קוד שצריך לעשות עליו review, ועוד כמה משימות. מצרף את הקוד בחלק של ״שאלות מקצועיות מתוך הריאיון״, ואת השאלות הנוספות בחלק ״תשובות״ מפאת מגבלת מקום
שאלות מתוך הראיון
Your team has been tasked with implementing a nodejs function that validates a user’s (Israeli)
ID number.
A valid ID number consists of 9 digits and adheres to the Luhn algorithm
( https://en.wikipedia.org/wiki/Luhn
_
algorithm )
The following code was implemented by your peer:
function isValidTaxId(taxId?: string): boolean {
if (isEmpty(taxId))
return false;
length = taxId.length;
var isValid = false;
if (length == 9) {
var aggr = 0;
for (var i = 0; i < length; i++) {
var char = taxId.substr(i, 1);
var mul = (1 + (i % 2)) * parseInt(char);
if (mul >= 9) {
mul -= 9;
}
aggr += mul;
}
isValid = (aggr % 10 == 0);
}
return isValid;
}
function isEmpty(text?: string): boolean {
return text === null || typeof text === 'undefined' || text.length === 0 || (typeof text ===
'string' && text.trim() === '');
}
תשובות
הוסף תשובה
|
לצפיה בתשובות
אוגוסט 2024
Your tasks are as follows:
1. Review your peer’s code and provide your feedback
2. In case you’ve spotted any bugs in the implementation, please point them out and fix
3. Valid Russian ID numbers too, adhere to Luhn algorithm but they consist of exactly 10
digits. Extend the code to support the validation of both Israeli and Russian ID numbers
based on the user’s locale.
4. Valid Turkish ID numbers too, adhere to Luhn algorithm but they consist of exactly 8 digits
and the sum of the first two digits must be an odd number. Extend the code to support
Turkish ID numbers.
5. How would you unit test the code? Please specify the tests you would implement.
Thank you!
הקוד עובד בערך חוץ מ"mul >= 9" שאמור להיות ״mul > 9״
לאחר שיחה עם hr, שיחה טלפונית עם VP R&D ולאחר ראיון טכני של שעה ורבע בערך.
שאלות מתוך הראיון
נתונה פונקציה ב Java שאמורה לעשות ואלידציה למספרי זהות (ישראליים - 9 ספרות) בהתאם לאלגוריתם Luhn (הם מספקים קישור לויקיפדיה של האלגוריתם).
הסעיפים:
1. תבחן את הקוד.
2. אם יש שגיאות בקוד - תקן אותם.
3. חבר כמה שיותר Unit tests לבדיקת הפונקציונליות של הקוד.
4. הוסף תמיכה לתעודות זהות יווניות (8 ספרות).
5. הוסף תמיכה לתעודות זהות הולנדיות (10 ספרות וחייב להתחיל עם 7,8,9).
תשובות
הוסף תשובה
|
לצפיה בתשובות
מאי 2022
הקוד היה בסדר מלבד זה שהפונקציה החזירה בדיוק את התשובה ההפוכה.
לאחר שיחת היכרות הייתה שיחה עם ה vp R&D, ולאחריה היה ראיון טכני שהיה בערך שעה וחצי בזום
שאלות מתוך הראיון
נתונה פונקציה שכתובה ב Java (יש בעוד שפות למי שלא מכיר Java), והיא עושה ואלידציה למספרי זהות על פי אלגוריתם נתון.
1.תבדוק אם יש טעות לוגית בפונקציה, אם יש תתקן אותה.
2. תכתוב כמה unit tests לבדוק אותה.
3. תרחיב את הפונקציה באופן שיתאים לבדיקת מספרי זהות של ארצות אחרות (מספר תווים במספר הזהות שונה, או שבאמת המדינות המספר חייב להתחיל במספרים מסויימים).